
$(document).ready(function() {
    $('#wizard').smartWizard({onLeaveStep:leaveAStepCallback,
                              onFinish:onFinishCallback});

    function leaveAStepCallback(obj){
        var step_num= obj.attr('rel'); 
        return validateSteps(step_num); 
    }
                          
    function onFinishCallback(){ 
        if(validateAllSteps()){   
           //  document.forms[0].submit();
           $('#ReportAdminWizardForm').submit();
        }
    }
    
    function validateSteps(stepnumber){
        var isStepValid = true;
        if(stepnumber == 1){
            isStepValid = false;
            $("tr :checkbox[name*='[Add]']").each(function(){
                if ( $(this).is(':checked')) {
                    isStepValid = true;
                }
            });            
        }
        if ( !isStepValid )
            $('#wizard').smartWizard('showMessage','No field selected');
        return isStepValid;
        
    }
    
    function validateAllSteps(){  
        var isStepValid = true;
        // all step validation logic     
        return isStepValid;
    }
    
    $('#wizardSubmit').hide();
    
    // fields position default values
    $('input.position').reNumberPosition();
    
    // change tr background color when checked
    // closest parent element
    $("tr :checkbox[name*='[Add]']").live("click", function() {
        $(this).closest("tr").css("background-color", this.checked ? "#eee" : "");
    });
    
    // init: all checkbox fields are checked
    $("tr :checkbox[name*='[Add]']").each(function(){
        $(this).closest("tr").css("background-color", this.checked ? "#eee" : "");
    });

    $( ".sortable1 tbody" ).sortable({
        items: "tr",
        cancel: "thead",
        axis: 'y',
        stop: function(event, ui) {
            $('input.position').reNumberPosition();
            this.update();            
        }
    });    
    
    $( ".sortable2 tbody" ).sortable({
        items: "tr",
        cancel: "thead",
        axis: 'y',
        stop: function(event, ui) {
            $('input.position').reNumberPosition();
            this.update();
        }
    });
    
    $('.checkAll').click(function () {
        model = $(this).text();
        $("tr :checkbox[name^=\"data["+model+"]\"][name*='[Add]']").each(function(){
            $(this).attr('checked', !this.checked);
            $(this).closest("tr").css("background-color", this.checked ? "#eee" : "");
        });
    });
    
    $( ".datepicker" ).datepicker({
            showOn: "button",
            buttonImageOnly: true,
            dateFormat: 'yy-mm-dd',
            buttonImage: cfg+"img/calendar.gif"
            //buttonText: "Choose date"
    });
    
});


jQuery.fn.reNumberPosition = function() {
    var e = $(this);
    var c = null;
    var i = 1;
    e.each(function(){
        this.value = i;
        i++;
    });      
};